Ubuntu Mirror mit debmirror einrichten
Zuerst installieren wir die benötigten Debian Pakete. Auf ein Debian Server verwenden wir das Paket debian-keyring
und auf einen Ubuntu Server verwenden wir ubuntu-keyring
.
root:~# apt-get install debmirror debian-keyring
Nun erstellen wir die Verzeichnisstruktur des Ubuntu Mirrors.
root:~# mkdir -p /var/www/example.com/mirror/ubuntu
root:~# mkdir -p /var/www/example.com/mirror/ubuntu-security
root:~# mkdir -p /var/www/example.com/mirror/ubuntu-updates
root:~# mkdir -p /var/www/example.com/mirror/ubuntu-backports
Dann erstellen oder laden wir uns das Skript debmirror.sh herunter, welches uns mit Hilfe von debmirror die Pakete vom angegebenen Server spiegelt.
root:~# wget https://wiki.tuxnet24.de/others/.data/debmirror.sh -O /usr/local/bin/debmirror.sh && chmod 755 /usr/local/bin/debmirror.sh
Jetzt laden wir die Datei ubuntu-archive-keyring.gpg von old-releases.ubuntu.com herrunter und speichern die Datei unter /usr/share/keyrings/
.
root:~# wget http://old-releases.ubuntu.com/ubuntu/project/ubuntu-archive-keyring.gpg -O /usr/share/keyrings/ubuntu-archive-keyring.gpg
Als nächstes importieren wir die Datei /usr/share/keyrings/ubuntu-archive-keyring.gpg
.
root:~# gpg --no-default-keyring --keyring trustedkeys.gpg --import /usr/share/keyrings/ubuntu-archive-keyring.gpg
Für das Skript richten wir uns einen Cronjob ein, welches jeden Montag eines jeden zweiten Monats den Mirror aktualisiert.
root:~# crontab -e
# ********************************************************************
# Minute Stunde Tag Monat Wochentag Komando
# 0-59 0-23 0-31 0-12 0-7 (0 + 7 = So.)
# ********************************************************************
#
# date: 2013-07-16 13:27
# description: Update every monday in 2 month the ubuntu mirror
0 1 * */2 1 /usr/local/bin/debmirror.sh >/dev/null 2>&1
0 3 * */2 1 /usr/local/bin/debmirror.sh "security" >/dev/null 2>&1
0 5 * */2 1 /usr/local/bin/debmirror.sh "updates" >/dev/null 2>&1
0 7 * */2 1 /usr/local/bin/debmirror.sh "backports" >/dev/null 2>&1
#
# ********************************************************************
# EOF
Als nächstes initialisieren wir den Ubuntu Mirror, indem wir das Skript debmirror.sh manuell ausführen.
root:~# /usr/local/bin/debmirror.sh
root:~# /usr/local/bin/debmirror.sh security
root:~# /usr/local/bin/debmirror.sh updates
root:~# /usr/local/bin/debmirror.sh backports
Damit unser Mirror über HTTP erreichbar ist, erstellen wir uns eine Apache vHost Datei mit etwa folgenden Inhalt.
root:~# vi /etc/apache2/sites-available/mirror
<VirtualHost *:80>
ServerName mirror.example.com
ServerAdmin webmaster@example.com
DocumentRoot /var/www/example.com/mirror
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/example.com/mirror>
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/mirror.example.com_err.log
CustomLog /var/log/apache2/mirror.example.com_acc.log combined
LogLevel warn
</VirtualHost>
Nun aktivieren wir noch die soeben erstellte vHost Datei und lassen den Apache Webserver die Konfiguration neu einlesen.
root:~# a2ensite mirror
root:~# apache2ctl configtest && apache2ctl graceful
Nun können wir auf unseren anderen Servern/Rechnern die /etc/apt/source.list
anpassen, das wir diesen Mirror nutzen.
deb http://mirror.example.com/ubuntu natty universe multiverse main restricted
deb http://mirror.example.com/ubuntu-security natty-security universe main restricted multiverse
deb http://mirror.example.com/ubuntu-updates natty-updates main restricted universe multiverse
deb http://mirror.example.com/ubuntu-backports natty-backports main restricted universe multiverse
Als letzten Schritt aktualisieren wir noch die Paketliste mit dem neuen Mirror.
root:~# apt-get update